1 - Advanced Design and Programming [ID:12000]
50 von 637 angezeigt

Okay, willkommen zu ADAP. Ich bin überrascht, positiv froh, dass nicht so viele im Raum sind,

registriert sind 73 Studenten. Jetzt haben wir unsere kryptische E-Mail rausgeschickt,

dass dann doch bitte nur eine Teilmenge hier kommt. Sofern das glücklicherweise nicht

überlastet. Mein Name ist Dirk Riele, ich leite diesen Kurs. Wir fangen auch für die,

die online da sind, wir fangen pünktlich um 13 Uhr an. Heute ist eine Ausnahme, eben weil es

eine Verwirrung mit Univis gab, was den Raum betrifft. Wir fangen um 13 Uhr an. Dieser Kurs

ist ein später Bachelor, früher Master Kurs mit dem Ziel, Ihnen Domänen unabhängige,

fortgeschrittene objektorientierte Programmierung und Entwurf nahezu bringen, nahezu legen. Folgt

so nach AUD, parallel vielleicht zu Systemprogrammierung, also fortgeschrittene

Programmierung für bestimmte Domäne, zum Beispiel Betriebssysteme und aus meiner Sicht auch orthogonal

oder parallel zu so etwas wie maschinelles Lernalgorithmen. Hier geht es nicht um NML,

hier geht es um grundlegende Prinzipien guten Entwurfs und guter Programmierung. Wir machen das

mit einer Anwendung namens Wahlzeit, an der Sie inkrementell arbeiten werden, da gibt es schon die

existierende Anwendung und die werden Sie je nach Übungsaufgabe in bestimmter Hinsicht erweitern.

Wir, das sind Andreas Bauer, heute der hier vorne neben mir sitzt, Georg Schwarz und Julia Krause,

meine TA's im Englischen oder wissenschaftliche Mitarbeiter, die in der Lehre mithelfen im Deutschen.

Diese Wahlzeitanwendung ist recht einfach, das ist eine klassische Web-Anwendung, wo Ihnen Fotos

beliebiger Art gezeigt werden, die Sie dann bewerten können, klicken Sie halt das eine 10 oder 1 und

kriegen Sie einfach das nächste Foto vorgelegt, nichts großartig Neues, diese Art von Software

gibt es schon seit Jahren. Wahlzeit ist allerdings ein Rahmenwerk, soll heißen, es ist nicht spezifisch

auf das Anwendungsbeispiel, das Sie hier sehen, Blumenfotos zugeschnitten und was Sie machen werden,

um sich vorzubereiten für die Übungen, ist sich ein Thema Ihrer Wahl selbst auszusuchen.

Vielleicht sind Sie in Origami oder Sie mögen gerne Essen oder Sie mögen gerne Bergbilder oder Fußball

oder doch wieder Blumen oder Hot Rods, was auch immer, eine Ihrer ersten sehr einfachen Überlegungen

wird sein, das mache ich fachlich, eine Domäne, die Ihnen nahe lebt. Wenn Sie gerne Briefmarken

sammeln, dann haben Sie halt Fotos von Briefmarken drin, wenn Sie gerne Sport mögen, haben Sie halt

Ihre Lieblingssportart da drin und auf die Art und Weise wird jeder Student dieses Rahmenwerk Wahlzeit

zu einer Anwendung, in meinem Beispiel hier eben Flowers, Blumen, werden Sie die anpassen für Ihre

Bedürfnisse, das ist die Idee eines Rahmenwerks und so sorgen wir auch dafür, dass die Programmierarbeit,

die Sie individuell auch als Hausaufgabe leisten, sich halt unterscheidet. Das wird Ihre erste

Aufgabe sein, Sie überlegen sich, was Sie mögen. Sie werden dann das Rahmenwerk, da gehe ich dann

später noch drauf ein, so erweitern, dass es eben für diese Domäne passt. So gibt es von Wahlzeit

dem Framework, also WF hier, halt eine Fotoklasse, ein einfacher Aspekt und Sie werden dann halt Ihre

domänenspezifische Fotoklasse in einer Wahlzeit Erweiterung, Wahlzeit Extension hier dann Flower

Photo in meinem Beispiel einführen. Eine Klasse, die das Foto repräsentiert, eine weitere Klasse, die

das fachliche Objekt oder die Klasse hinter den Fotos repräsentiert. So haben Sie vielleicht viele

Rosenfotos, aber nur eine Rose. Vielleicht ist das sogar eine ganz bestimmte Rose, nämlich die im

dritten Beet von hinten, also hat Ihnen einen Ort und so weiter. In der Art und Weise, wie wir für

unterschiedliche fachliche Programmierherausforderungen diese domänenspezifischen

Klassen einfügen, werden Sie das halt als Teil der Hausaufgaben machen und Sie sehen, wie das fachliche

Modell und dran gekoppelte Programmieraufgaben und Entwurfsaufgaben sich halt im Laufe des

Semesters verfeinern. Das wird also immer inkrementell aufeinander gebaut. Die konkreten

Inhalte haben Sie ja vielleicht in der Univers-Ausschreibung schon gesehen. Was brauchen Sie denn, um hier

erfolgreich zu sein? Naja, wir setzen Java voraus und auch Git. Es ist jetzt so, dass dieser Kurs schon

länger läuft, aber wie das so bei Kursen ist, man ändert ständig etwas. Was wir nicht mehr machen,

ist einen aktiven Beitrag einzufordern. Deswegen können wir jetzt zum Beispiel auch jene, die

online nur dabei sind, stummschalten, obwohl Sie gerne, wenn Sie mich hören, in den Chat

hineintippen können, wenn Sie eine Frage haben und dann wird Andi an Ihrer Stelle die Hand heben.

Sie müssen also nicht mehr aktiv teilnehmen und eine weitere Änderung, die wir dieses Semester

vorgenommen haben, ist, dass wir von der App Engine partiell weg sind. Google App Engine wird

Teil einer Videoserie :

Zugänglich über

Offener Zugang

Dauer

01:16:52 Min

Aufnahmedatum

2019-10-14

Hochgeladen am

2019-10-15 13:40:33

Sprache

de-DE

This course teaches principles and practices of advanced object-oriented design and programming.

Students learn the following concepts:

Class-Level

  • Method design

  • Class design

  • Classes and interfaces

  • Subtyping and inheritance

  • Implementing inheritance

  • Design by contract

Collaboration-Level

  • Values vs. objects

  • Role objects

  • Type objects

  • Object creation

  • Collaboration-based design

  • Design patterns

Component-Level

  • Error handling

  • Meta-object protocols

  • Frameworks and components

  • Domain-driven design

  • API evolution

Einbetten
Wordpress FAU Plugin
iFrame
Teilen